Community Place version 2 alpha
Functional Mapping for the latest
Moving Worlds Specifications
How to read the tables
Func:
expected feedback will happen when specified in wrl file.
ROUTE:
In case of exposed field
events can be delivered to the exposed field using ROUTE. It means,
a change-notification event may be generated, too.
In case of event-in/out
event routing is available by ROUTE statements.
read:
Exposed field can be read by using JAVA API.
Since it should be done by event handling mechanism by nature, only some
special nodes have this capability.
write:
Exposed field can be written by using JAVA API.
Since it should be done by event handling mechanism by nature, only some
special nodes have this capability.
Notes:
descriptions for * and x.
Tables
Following tables are categorized by The Moving Worlds VRML 2.0
Specification Draft #1 on April 18, 1996.
Grouping Nodes
Anchor
| | Func | ROUTE | read | write |
field | url | O | - | - | - |
field | description | O | - | - | - |
exposed field | parameters | X | X | - | - |
exposed field | children | O | X | - | - |
Billboard
Not implemented yet.
Collision
| | Func | ROUTE | read | write |
exposed field | collide | X | X | - | - |
field | proxy | X | - | - | - |
exposed field | children | X | X | - | - |
event-out | collision | - | X | - | - |
Notes:
The current implementation assumes the whole scene graph is children of
a Collision{collide TRUE}. That is, you cannot pass through objects in
default.
Group
| | Func | ROUTE | read | write |
field | bboxCenter | * | - | - | - |
field | bboxSize | * | - | - | - |
exposed field | children | O | X | - | - |
event-in | add_children | - | X | - | - |
event-in | remove_children | - | X | - | - |
Notes:
The place/size of bbox is calculated from the objects in a Group
automatically. So, you cannot set them.
Inline
| | Func | ROUTE | read | write |
field | url | * | - | - | - |
field | bboxSize | * | - | - | - |
field | bboxCenter | * | - | - | - |
Notes:
If you set more than one URL, only the first one will be loaded.
All the files consisting of a world are loaded at the first stage
of entering the world.
The place/size of bbox is calculated from the objects in a Inline
automatically. So, you cannot set them.
LOD
| | Func | ROUTE | read | write |
field | range | O | - | - | - |
field | center | O | - | - | - |
exposed field | levels | O | X | - | - |
Switch
| | Func | ROUTE | read | write |
exposed field | whichChild | * | O | - | - |
exposed field | choices | O | X | - | - |
Notes:
When the value of whichChild is -3, Switch node show all its children. (same as VRML 1.0)
Transform
| | Func | ROUTE | read | write |
field | bboxCenter | * | - | - | - |
field | bboxSize | * | - | - | - |
exposed field | translation | O | O | O | O |
exposed field | rotation | O | O | X | O |
exposed field | scale | X | X | - | - |
exposed field | scaleOrientation | X | X | - | - |
exposed field | center | X | X | - | - |
exposed field | children | O | X | - | - |
event-in | add_children | - | X | - | - |
event-in | remove_children | - | X | - | - |
Notes:
The place/size of bbox is calculated from the objects in Transform
automatically. So, you cannot set them.
Leaf Nodes
DirectionalLight
| | Func | ROUTE | read | write |
exposed field | on | O | O | - | - |
exposed field | intensity | O | O | - | - |
exposed field | ambientIntensity | X | X | - | - |
exposed field | color | O | O | - | - |
exposed field | direction | O | X | - | - |
Notes:
Our rendering engine doesn't support ambientIntensity function.
Fog
| | Func | ROUTE | read | write |
exposed field | size | * | X | - | - |
exposed field | visibilityRange | O | X | - | - |
exposed field | color | * | X | - | - |
Notes:
Our rendering engine always has no limit of size.
Only last defined Fog node works.
When your PC is in 16 bit display mode, color field are automatically
set to be (0, 0, 0).
PointLight
| | Func | ROUTE | read | write |
exposed field | on | O | O | - | - |
exposed field | intensity | O | O | - | - |
exposed field | ambientIntensity | X | X | - | - |
exposed field | color | O | O | - | - |
exposed field | location | O | X | - | - |
exposed field | radius | X | X | - | - |
exposed field | attenuation | X | X | - | - |
Notes:
Due to the restriction of our rendering engine, ambientIntensity
has not been supported yet. To avoid confusing which comes from
the semantic difference (*1) of radius between our rendering
engine and Moving Worlds spec, radius field and attenuation field
will be ignored and the radius is always infinity. (that is, not
be attenuated.)
(*1) the radius of the former is the radius which begins to
be attenuated. the latter one is the radius where intensity
comes to 0.
Shape
| | Func | ROUTE | read | write |
field | appearance | O | - | - | - |
field | geometry | O | - | - | - |
Sound
| | Func | ROUTE | read | write |
exposed field | source | O | X | - | - |
exposed field | intensity | O | O | - | - |
exposed field | priority | X | X | - | - |
exposed field | location | O | X | - | - |
exposed field | direction | O | X | - | - |
exposed field | minFront | O | X | - | - |
exposed field | maxFront | O | X | - | - |
exposed field | minBack | * | X | - | - |
exposed field | maxBack | * | X | - | - |
field | spatialize | X | - | - | - |
Notes:
The current implementation assumes minBack == minFront, maxBack == maxFront.
SpotLight
| | Func | ROUTE | read | write |
exposed field | on | O | O | - | - |
exposed field | intensity | O | O | - | - |
exposed field | ambientIntensity | X | X | - | - |
exposed field | color | O | O | - | - |
exposed field | location | O | X | - | - |
exposed field | direction | O | X | - | - |
exposed field | beamWidth | * | X | - | - |
exposed field | cutOffAngle | O | O | - | - |
exposed field | radius | X | X | - | - |
exposed field | attenuation | X | X | - | - |
Notes:
Due to the restriction of our rendering engine, ambientIntensity
has not been supported yet. To avoid confusing which comes from
the semantic difference (*1) of radius between our rendering
engine and Moving Worlds spec, radius field and attention field
will be ignored and the radius is always infinity. (that is, not
be attenuated.) the beamWidth field will be default value defined
by our rendering engine.
Bindable Leaf Nodes
Background
| | Func | ROUTE | read | write |
exposed field | groundColor | X | X | - | - |
exposed field | groundRange | X | X | - | - |
exposed field | skyColor | * | X | - | - |
exposed field | skyRange | X | X | - | - |
exposed field | posX | X | X | - | - |
exposed field | negX | X | X | - | - |
exposed field | posY | X | X | - | - |
exposed field | negY | X | X | - | - |
exposed field | posZ | X | X | - | - |
exposed field | negZ | * | X | - | - |
event-in | bind | - | X | - | - |
event-out | isBound | - | X | - | - |
Notes:
Due to the restriction of our rendering engine, values except for
skyColor[0] will be ignored and the background will be drawn with
it. Regarding background textures, values except for negZ will
be ignored and the texture of negZ will be mapped with tiling.
NavigationInfo
| | Func | ROUTE | read | write |
exposed field | avatorSize | X | X | - | - |
exposed field | headLight | O | X | - | - |
exposed field | speed | O | X | - | O |
exposed field | type | X | X | - | - |
exposed field | visibilityLimit | O | X | - | - |
event-in | bind | - | X | - | - |
event-out | isBound | - | X | - | - |
Notes:
You can change speed field with using a method of Browser class.
Viewpoint
| | Func | ROUTE | read | write |
exposed field | position | O | X | * | * |
exposed field | orientation | O | X | * | * |
exposed field | fieldOfView | O | X | - | - |
field | description | X | - | - | - |
event-in | bind | - | X | - | - |
event-out | bindTime | - | X | - | - |
event-out | isBound | - | X | - | - |
Notes:
You can change viewpoint by changing translation or rotation of
the Transform node which defines the coordinate system of the Viewpoint.
Sensor Nodes
CylinderSensor
Not implemented yet.
Disksensor
Not implemented yet.
PlaneSensor
Not implemented yet.
ProximitySensor
Not implemented yet.
SphereSensor
Not implemented yet.
TimeSensor
| | Func | ROUTE | read | write |
exposed field | cycleInterval | O | O | - | - |
exposed field | discrete | O | O | - | - |
exposed field | enabled | O | O | - | - |
exposed field | loop | O | O | - | - |
exposed field | stopTime | O | O | - | - |
exposed field | startTime | O | O | - | - |
event-out | isActive | - | O | - | - |
event-out | fraction | - | O | - | - |
event-out | time | - | O | - | - |
TouchSensor
| | Func | ROUTE | read | write |
exposed field | enabled | O | O | - | - |
event-out | isOver | - | O | - | - |
event-out | isActive | - | O | - | - |
event-out | hitPoint | - | X | - | - |
event-out | hitNormal | - | X | - | - |
event-out | hitTexCoord | - | X | - | - |
event-out | touchTime | - | X | - | - |
event-out | hitNode | - | O | - | - |
Notes:
The hitNode field is not specified in VRML2.0 but SONY specific.
VisibilitySensor
Not implemented yet.
Global Nodes
Script
| | Func | ROUTE | read | write |
field | url | O | - | - | - |
field | scriptType | O | - | - | - |
field | mustEvaluate | X | - | - | - |
field | directOutputs | X | - | - | - |
WorldInfo
| | Func | ROUTE | read | write |
field | title | O | - | - | - |
field | info | O | - | - | - |
Geometry Nodes
Box
| | Func | ROUTE | read | write |
field | size | O | - | - | - |
Cone
| | Func | ROUTE | read | write |
field | bottomRadius | O | - | - | - |
field | height | O | - | - | - |
field | side | O | - | - | - |
field | bottom | O | - | - | - |
Notes:
TextureTransform fields in Appearance does not work.
Cylinder
| | Func | ROUTE | read | write |
field | radius | O | - | - | - |
field | height | O | - | - | - |
field | side | O | - | - | - |
field | top | O | - | - | - |
field | bottom | O | - | - | - |
Notes:
TextureTransform fields in Appearance does not work.
ElevationGrid
Not implemented yet.
Extrusion
Not implemented yet.
IndexedFaceSet
| | Func | ROUTE | read | write |
exposed field | coord | O | X | - | - |
field | coordIndex | O | - | - | - |
exposed field | texCoord | O | X | - | - |
field | texCoordIndex | O | - | - | - |
exposed field | color | O | X | O | O |
field | colorIndex | O | - | - | - |
field | colorPerVertex | * | - | - | - |
exposed field | normal | O | X | - | - |
field | normalIndex | O | - | - | - |
field | normalPerVertex | O | - | - | - |
field | ccw | O | - | - | - |
field | solid | * | - | - | - |
field | convex | * | - | - | - |
field | creaseAngle | * | - | - | - |
Notes:
Changing color by routing to IndexedFaceSet is not implemented
yet. However, there is a higher level API for doing the
same thing.
Even when colorPerVertex is specified TRUE, color per
vertex is not supported. Instead, the average color of
all vertex of a face is given to the face.
Parameters of "solid" and "convex" will not be evaluated.
Parameter "creaseAngle" effects as following:
Only when normal is not NULL and creaseAngle value is
3.14, smooth shading will be given for all faces by
calculating normals of each vertex.
IndexedLineSet
Not implemented yet.
PointSet
Not implemented yet.
Sphere
| | Func | ROUTE | read | write |
field | radius | O | - | - | - |
Notes:
TextureTransform fields in Appearance does not work.
Text
| | Func | ROUTE | read | write |
exposed field | string | * | X | - | - |
field | fontStyle | * | - | - | - |
field | maxExtent | X | - | - | - |
field | length | * | - | - | - |
Notes:
Although the MovingWorlds specifies string/length fields to be MFString, our
current implementation shows the first element only.
The current implementation does not support multi-byte characters.
fontStyle field is assumed to be as follows:
- family is SANS.
- horizontal, leftToRight,and topToBottom are TRUE.
- language and spacing are ignored.
Geometric Property Nodes
Color
| | Func | ROUTE | read | write |
exposed field | rgb | O | X | O | O |
Notes:
You cannot change object's color by routing events to Color nodes. Instead,
we offer Java API to change object's color.
Coordinate
| | Func | ROUTE | read | write |
exposed field | point | O | X | - | - |
Normal
| | Func | ROUTE | read | write |
exposed field | vector | O | X | - | - |
TextureCoordinate
| | Func | ROUTE | read | write |
exposed field | point | O | X | - | - |
Appearance Node and Appearance Property Nodes
Appearance
| | Func | ROUTE | read | write |
exposed field | material | O | X | - | - |
exposed field | texture | O | X | - | - |
exposed field | textureTrans | O | X | - | - |
FontStyle
Not implemented yet.
ImageTexture
| | Func | ROUTE | read | write |
exposed field | url | O | X | - | - |
field | repeatS | * | - | - | - |
field | repeatT | * | - | - | - |
Notes:
Our rendering engine supports only repeatS = repeatT = TRUE.
It limits the number of texture tiling repetition to be less than 33.
Material
| | Func | ROUTE | read | write |
exposed field | diffuseColor | O | X | * | * |
exposed field | ambientIntensity | X | X | - | - |
exposed field | specularColor | * | X | - | - |
exposed field | emissiveColor | O | X | * | * |
exposed field | shininess | * | X | - | - |
exposed field | transparency | O | X | * | * |
Notes:
Our rendering engine does not support ambientIntensity and specularColor.
The specular is realized in combination with specularColor and the
default shininess for our rendering engine.
MovieTexture
| | Func | ROUTE | read | write |
exposed field | url | X | X | - | - |
exposed field | speed | X | X | * | * |
exposed field | loop | X | X | - | - |
exposed field | startTime | X | X | - | - |
exposed field | stopTime | X | X | - | - |
field | repeatS | X | - | - | - |
field | repeatT | X | - | - | - |
event-out | duration | - | X | - | - |
Notes:
The following methods are defined temporarily to realize movies.
- public native void play3DMovie();
- public native void pause3DMovie();
- public native void set3DMovieSpeed(float speed);
- public native float get3DMovieSpeed();
- public native int get3DMovieFrame();
- public native int get3DMovieFrameNum();
- public native void set3DMovieFrame(int f);
- public native void set3DMovieNextFrame();
- public native void set3DMoviePrevFrame();
PixelTexture
Not implemented yet.
TextureTransform
| | Func | ROUTE | read | write |
exposed field | translation | * | X | - | - |
exposed field | rotation | * | X | - | - |
exposed field | scale | * | X | - | - |
exposed field | center | * | X | - | - |
Notes:
TextureTransform does not work for Cone, Cylinder and Sphere.
This is because our rendering engine can not map textures on non-rectangular
faces.
Animation Interpolation Nodes
ColorInterpolator
Not implemented yet.
CoordinateInterpolator
Not implemented yet.
NormalInterpolator
Not implemented yet.
OrientationInterpolator
Not implemented yet.
PositionInterpolator
_fraction
| | Func | ROUTE | read | write |
exposed field | keys | O | X | - | - |
exposed field | values | O | X | - | - |
event-in | set | - | O | - | - |
event-out | outValue | - | O | - | - |
ScalarInterpolator
Not implemented yet.
Media Nodes
AudioClip
| | Func | ROUTE | read | write |
field | url | O | - | - | - |
field | description | X | - | - | - |
exposed field | loop | O | X | - | - |
exposed field | startTime | O | O | - | - |
exposed field | stopTime | O | O | - | - |
exposed field | pitch | X | X | - | - |
event-out | duration | - | X | - | - |
event-out | isActive | - | X | - | - |
Other Syntax Features
ROUTE
We are now proposing to MovingWorlds that it should support high-level Java
methods to manipulate 3D objects easily in Scripts. Functions of those
methods can be realized using ROUTEs if you write many codes in Java.
In this implementation, we want to show how Scripts can be simple if you
use high-level Java methods, and put less priority on implementing ROUTEs.
Notice that most functions originally by ROUTEs are realized in a more
easy-to-read way using high-level methods.
PROTO
Not implemented yet.